home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 November / Chip 11-96.iso / treiber / grafik / datapat / twinor64 / nt / bholes.mst < prev    next >
Text File  |  1996-04-28  |  8KB  |  336 lines

  1. '**************************************************************************
  2. '*                  Datapath Black Holes Setup Script
  3. '**************************************************************************
  4.  
  5. '$DEFINE DEBUG  ''Define for script development/debugging
  6.  
  7. '$INCLUDE 'setupapi.inc'
  8. '$INCLUDE 'msdetect.inc'
  9. '$INCLUDE 'msshared.inc'
  10.  
  11. '************************************************************
  12. '* Functions for reading/writing/checking registration
  13. '* details from the floppy-disk
  14. '************************************************************
  15. DECLARE FUNCTION dll_registered LIB "bhregist.dll" (szDll$) AS INTEGER
  16. DECLARE FUNCTION write_details LIB "bhregist.dll" (szDll$, szUser$, szComp$) AS INTEGER
  17. DECLARE FUNCTION checkstring LIB "bhregist.dll" (szName$) AS INTEGER
  18.  
  19. ''Dialog ID's
  20. CONST WELCOME       = 100
  21. CONST ASKQUIT       = 200
  22. CONST DESTPATH      = 300
  23. CONST EXITFAILURE   = 400
  24. CONST EXITQUIT      = 600
  25. CONST EXITSUCCESS   = 700
  26. CONST APPHELP       = 900
  27. CONST OPTHELP       = 1000
  28. CONST CHECK         = 2500
  29. CONST BADPATH       = 6400
  30. CONST CDCONFIRMINFO = 7300
  31. CONST CDGETNAMEORG  = 7500
  32. CONST CDBADNAME     = 7700
  33. CONST CDBADCOMP        = 7800
  34. CONST CDWRITEENABLE = 7900
  35.  
  36. ''Bitmap ID
  37. CONST LOGO = 1
  38.  
  39. GLOBAL DEST$            ''Default destination directory.
  40. GLOBAL WIN_DEST$        ''Default windows directory.
  41. GLOBAL WIN_SYS_DEST$    ''Default windows system directory.
  42.  
  43. GLOBAL USER_NAME$    ''User name for registration
  44. GLOBAL COMP_NAME$     ''Company name for registration
  45. GLOBAL DLL_NAME$    ''Name of DLL for registration
  46.  
  47. GLOBAL RETVAL%
  48. GLOBAL CURSORVAL%
  49.  
  50. '' Return values from dll_registered and write_details
  51. CONST SUCCESS = 0    '' return code for OK
  52. CONST FAILURE = 1    '' return code for not OK
  53. CONST FATAL   = 2    '' return code for fatal error
  54. CONST TRUE    = 1
  55. CONST FALSE   = 0
  56.  
  57. DECLARE SUB Install
  58. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  59.  
  60. INIT:
  61.  
  62.      CUIDLL$ = "instbh.dll"                ''Custom user interface dll
  63.      HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  64.  
  65.      SetBitmap CUIDLL$, LOGO
  66.      SetTitle "Datapath Black Holes 32 Installation"
  67.  
  68.      szInf$ = GetSymbolValue("STF_SRCINFPATH")
  69.      IF szInf$ = "" THEN
  70.           szInf$ = GetSymbolValue("STF_CWDDIR") + "BHOLES.INF"
  71.      END IF
  72.      ReadInfFile szInf$
  73.  
  74.      DEST$ = "C:\BHOLES32"
  75.      WIN_DEST$ = GetWindowsDir()
  76.      WIN_SYS_DEST$ = GetWindowsSysDir()
  77.      SERIAL_NO$ = "000001"
  78.  
  79. '$IFDEF DEBUG
  80.      i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  81.      WinDrive$ = MID$(GetWindowsDir, 1, 1)
  82.      IF IsDriveValid(WinDrive$) = 0 THEN
  83.           i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  84.           GOTO QUIT
  85.      END IF
  86. '$ENDIF ''DEBUG
  87.  
  88.  
  89. WELCOME:
  90.  
  91.      sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  92.      IF sz$ = "CONTINUE" THEN
  93.           UIPop 1
  94.      ELSE
  95.           GOSUB ASKQUIT
  96.           GOTO WELCOME
  97.      END IF
  98.  
  99.  
  100. GETPATH:
  101.      SetSymbolValue "EditTextIn", DEST$
  102.      SetSymbolValue "EditFocus", "END"
  103. GETPATHL1:
  104.      sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  105.      DEST$ = GetSymbolValue("EditTextOut")
  106.  
  107.      IF sz$ = "CONTINUE" THEN
  108.           IF IsDirWritable(DEST$) = 0 THEN
  109.                 GOSUB BADPATH
  110.                 GOTO GETPATHL1
  111.           END IF
  112.           UIPop 1
  113.      ELSEIF sz$ = "REACTIVATE" THEN
  114.           GOTO GETPATHL1
  115.      ELSEIF sz$ = "BACK" THEN
  116.           UIPop 1
  117.           GOTO WELCOME
  118.      ELSE
  119.           GOSUB ASKQUIT
  120.           GOTO GETPATH
  121.      END IF
  122.  
  123.  
  124. '/********************************************************************************
  125. MAININSTALL:
  126.  
  127.      Install
  128.  
  129. QUIT:
  130.      ON ERROR GOTO ERRQUIT
  131.  
  132.      IF ERR = 0 THEN
  133.           dlg% = EXITSUCCESS
  134. '***************************************
  135. '**** CD INSTALLATION MODIFICATIONS ****
  136. '***************************************
  137. ' User details registration moved here because we cannot modify source dll on
  138. ' CD rom !.
  139. '/*******************************************************************************
  140. '/*  User details Registration
  141. '/*******************************************************************************
  142.  
  143. GETREG:
  144.  
  145.      CURSORVAL% = ShowWaitCursor()
  146.  
  147.      USER_NAME$ = ""
  148.      COMP_NAME$ = ""
  149.  
  150.      DLL_NAME$ = MAKEPATH(DEST$,"BHOLE32.DLL")
  151.      RETVAL% = dll_registered (DLL_NAME$)
  152.  
  153.      RestoreCursor (CURSORVAL%)
  154.  
  155.      IF RETVAL% = SUCCESS THEN
  156.           GOTO MAININSTALL
  157.      ENDIF
  158.  
  159.      IF RETVAL% = FATAL THEN
  160.          ERR = STFERR
  161.         GOTO QUIT
  162.      ENDIF
  163.  
  164. GETREGL1:
  165.  
  166.  
  167.      SetSymbolValue "NameIn", USER_NAME$
  168.      SeTSymbolValue "OrgIn",  COMP_NAME$
  169.      SetSymbolValue "EditFocus", "END"
  170.  
  171.      sz$ = UIStartDlg(CUIDLL$, CDGETNAMEORG, "FNameOrgDlgProc", APPHELP, HELPPROC$)
  172.      USER_NAME$ = GetSymbolValue("NameOut")
  173.      COMP_NAME$ = GetSymbolValue("OrgOut")
  174.  
  175.      IF sz$ = "CONTINUE" THEN
  176.           IF checkstring (USER_NAME$) = FAILURE THEN
  177.                 GOSUB BADNAME
  178.                 UIPop 1
  179.                 GOTO GETREGL1
  180.           ENDIF
  181.           IF checkstring (COMP_NAME$) = FAILURE THEN
  182.                 GOSUB BADCOMP
  183.                 UIPop 1
  184.                 GOTO GETREGL1
  185.           ENDIF
  186.           UIPop 1
  187.           SetSymbolValue "ConfirmTextIn", USER_NAME$
  188.           AddListItem    "ConfirmTextIn", COMP_NAME$
  189.           sz$ = UIStartDlg (CUIDLL$, CDCONFIRMINFO, "FConfirmDlgProc", APPHELP, HELPPROC$)
  190.           UIPop 1
  191.           IF sz$ = "BACK" THEN
  192.                 GOTO GETREGL1
  193.           ENDIF
  194. WRITELOOP:
  195.           CURSORVAL% = ShowWaitCursor()
  196.           RETVAL% = write_details (DLL_NAME$, USER_NAME$, COMP_NAME$)
  197.     RestoreCursor (CURSORVAL%)
  198.     IF RETVAL <> SUCCESS THEN
  199.                 GOSUB BADWRITE
  200.                 GOTO WRITELOOP
  201.           ENDIF
  202.      ELSEIF sz$ = "REACTIVATE" THEN
  203.           GOTO GETREGL1
  204.      ELSEIF sz$ = "BACK" THEN
  205.           UIPop 1
  206.           GOTO WELCOME
  207.      ELSE
  208.           GOSUB ASKQUIT
  209.           GOTO GETREG
  210.      END IF
  211.      ELSEIF ERR = STFQUIT THEN
  212.           dlg% = EXITQUIT
  213.      ELSE
  214.           dlg% = EXITFAILURE
  215.      END IF
  216. QUITL1:
  217.      sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  218.      IF sz$ = "REACTIVATE" THEN
  219.           GOTO QUITL1
  220.      END IF
  221.      UIPop 1
  222.  
  223.      END
  224.  
  225. ERRQUIT:
  226.      i% = DoMsgBox("Setup sources were corrupted, call 555-1212!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  227.      END
  228.  
  229. BADPATH:
  230.      sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  231.      IF sz$ = "REACTIVATE" THEN
  232.           GOTO BADPATH
  233.      END IF
  234.      UIPop 1
  235.      RETURN
  236.  
  237. BADNAME:
  238.      sz$ = UIStartDlg(CUIDLL$, CDBADNAME, "FInfo0DlgProc", 0, "")
  239.      IF sz$ = "REACTIVATE" THEN
  240.           GOTO BADNAME
  241.      END IF
  242.      UIPop 1
  243.      RETURN
  244.  
  245. BADCOMP:
  246.      sz$ = UIStartDlg(CUIDLL$, CDBADCOMP, "FInfo0DlgProc", 0, "")
  247.      IF sz$ = "REACTIVATE" THEN
  248.           GOTO BADCOMP
  249.      END IF
  250.      UIPop 1
  251.      RETURN
  252.  
  253.  
  254. BADWRITE:
  255.      sz$ = UIStartDlg(CUIDLL$, CDWRITEENABLE, "FQuitDlgProc", 0, "")
  256.      IF sz$ = "EXIT" THEN
  257.           UIPopAll
  258.           ERROR STFQUIT
  259.      ELSE
  260.           UIPop 1
  261.      END IF
  262.      RETURN
  263.  
  264. ASKQUIT:
  265.      sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  266.  
  267.      IF sz$ = "EXIT" THEN
  268.           UIPopAll
  269.           ERROR STFQUIT
  270.      ELSEIF sz$ = "REACTIVATE" THEN
  271.           GOTO ASKQUIT
  272.      ELSE
  273.           UIPop 1
  274.      END IF
  275.      RETURN
  276.  
  277.  
  278.  
  279.  
  280. '**
  281. '** Purpose:
  282. '**     Builds the copy list and performs all installation operations.
  283. '** Arguments:
  284. '**     none.
  285. '** Returns:
  286. '**     none.
  287. '*************************************************************************
  288. SUB Install STATIC
  289.  
  290.     CreateDir DEST$, cmoNone
  291. '*******    CreateDir DEST$ + "\EFFECTS", cmoNone
  292.     
  293.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  294.  
  295.     AddSectionFilesToCopyList "Files", SrcDir$, DEST$
  296. '*******    AddSectionFilesToCopyList "effects", SrcDir$, DEST$ + "\EFFECTS"
  297.  
  298.     CopyFilesInCopyList
  299.  
  300.     szGroup$ = "DATAPATH"
  301.     szPath$  = ""
  302.  
  303.     CreateProgmanGroup szGroup$,szPath$,cmoNone
  304.  
  305.     szItem$ = "Black Holes 32"
  306.     szCmd$    = MAKEPATH(DEST$,"BHOLES32.EXE")
  307.     szOther$ = ""
  308.  
  309.     CreateProgmanItem szGroup$,szItem$,szCmd$,szOther,cmoOverwrite
  310.  
  311. END SUB
  312.  
  313.  
  314. '**
  315. '** Purpose:
  316. '**     Appends a file name to the end of a directory path,
  317. '**     inserting a backslash character as needed.
  318. '** Arguments:
  319. '**     szDir$  - full directory path (with optional ending "\")
  320. '**     szFile$ - filename to append to directory
  321. '** Returns:
  322. '**     Resulting fully qualified path name.
  323. '*************************************************************************
  324. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  325.      IF szDir$ = "" THEN
  326.           MakePath = szFile$
  327.      ELSEIF szFile$ = "" THEN
  328.           MakePath = szDir$
  329.      ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  330.           MakePath = szDir$ + szFile$
  331.      ELSE
  332.           MakePath = szDir$ + "\" + szFile$
  333.      END IF
  334. END FUNCTION
  335.  
  336.